/**
 * @name: 常用vuex
 * @date: 2020.3.3
 */
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex);

var _this = new Vue();

const store = new Vuex.Store({
	state: {
		//用于在两个页面传递大量数据时的缓存
		tmpData: '',
		//用户是否前往登录页
		goLogin: false,
		//用户重新登录，用于登录后刷新页面使用
		reLogin: false,
		//是否到达底部开始加载下一页
		btmLoad: false,
		//用户访问网络令牌
		token: '',
		//用户详细信息(引用时需转为对象)
		userinfo: '',
		//用户身份信息，0-子账号，1-主账号，2-加注站职员
		userMain: -1,
		siteList: [], // 加注站列表
	},
	mutations: {
		//修改缓存值
		setTmpData(state, data) {
			state.tmpData = data;
		},
		//将状态调整为已登录
		login(state, res) {
			state.reLogin = true;
			state.token = res.token;
			state.userMain = res.userMain;
			state.userinfo = JSON.stringify(res);
			if (res.isLogin) {
				uni.setStorageSync('token', res.token);
				uni.setStorageSync(_this.$tmp.USER_INFO, JSON.stringify(res))
			};
		},
		//设置用户信息
		setUserinfo(state, str) {
			state.userinfo = str;
			uni.setStorageSync(_this.$tmp.USER_INFO, str);
		},
		//将状态调整为未登录
		logout(state) {
			state.token = '';
			state.userMain = -1;
			state.userinfo = '';
			uni.setStorageSync(_this.$tmp.USER_INFO, '');
		},
		//用户是否前往了登录页
		goLogin(state, bool) {
			state.goLogin = bool;
		},
		//登录触发刷新后，取消用户重新登录状态
		hasLogin(state) {
			state.reLogin = false;
		},
		//是否到达底部开始加载下一页
		btmLoad(state, bool) {
			state.btmLoad = bool;
		},
		setSiteList(state, data) {
			state.siteList = data;
		}
	},
	getters: {

	},
	actions: {
		async requestSiteList({
			commit
		}) {
			const res = await _this.$http({
				url: _this.$api.siteUrl + 'getfillsitepage',
				data: {
					page: 0,
					rows: 9999,
				}
			});
			commit('setSiteList', res)
		}
	}
});

Vue.prototype.$store = store;
